//
//  GNRPickCard.h
//  FBSnapshotTestCase
//
//  Created by LvYuan on 2017/10/31.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <Masonry/Masonry.h>
#import "GNRPickCartMcro.h"

@class GNRPickCard;
@protocol GNRPickCardDelegate;

//MARK: - Block
typedef void(^GNRPickCardClosePressedBlock)(GNRPickCard *_Nullable pickCard);//关闭的回调
typedef void(^GNRPickCardContentViewShownCompletion)(GNRPickCard *_Nullable pickCard, UIView *_Nullable contentView);//contentView已经显示回调

@interface GNRPickCard : UIViewController<GNRPickCardUIConfigProtocol>
{
    CGFloat superViewTotalHeight;
    CGFloat navigationBarHeight;
    CGFloat contentViewHeight;
    CGFloat actionViewHeight;
    BOOL _disableDismissTapBGView;
}
@property (nonatomic, strong ,readonly)UIButton * _Nullable maskView;
@property (nonatomic, strong, readonly)UIView * _Nullable superView;
@property (nonatomic, strong, readonly)UIView * _Nullable navigationSuperView;
@property (nonatomic, strong, readonly)UIView * _Nullable contentSuperView;
@property (nonatomic, strong, readonly)UIView * _Nullable actionSuperView;
@property (nonatomic, strong, readonly)UIView * _Nullable bottomExtendView;

@property (nonatomic, weak) _Nullable id <GNRPickCardDelegate>delegate;

@property (nonatomic, copy)GNRPickCardClosePressedBlock _Nullable closePressBlock;
@property (nonatomic, copy)GNRPickCardContentViewShownCompletion _Nullable contentViewShownCompletion;

@end

//MARK: - Protocol
/**
 选项卡代理
 */
@protocol GNRPickCardDelegate <NSObject>
@optional
- (void)closePressedPickCard:(GNRPickCard *_Nullable)pickCard;
- (void)contentViewShown:(UIView *_Nullable)contentView pickCard:(GNRPickCard *_Nullable)pickCard;

@end
